﻿using UIShell.MessageBusService;

namespace Pasys.PresentationCore
{
    public interface ICommandBusService
    {
        void PublicCommand( string commandName);
        void PublicCommandStatus( string commandName, CommandStatus status);
        void PublicToolbarStatus( string commandName, CommandStatus status);
        void PublicCommandGroupStatus(string commandName, CommandStatus status);

        void PublicCommand(IFindOwnerForm sender, string commandName);
        void PublicCommandStatus(IFindOwnerForm sender, string commandName, CommandStatus status);
        void PublicToolbarStatus(IFindOwnerForm sender, string commandName, CommandStatus status);
        void PublicCommandGroupStatus(IFindOwnerForm sender, string commandName, CommandStatus status);

        void SubscribeCommandEvent(string commandName, MessageBusHandler handler);
        void SubscribeCommandStatusEvent(string commandName, MessageBusHandler handler);
        void SubscribeToolbarStatusEvent(string commandName, MessageBusHandler handler);
        void SubscribeCommandGroupStatusEvent(string commandName, MessageBusHandler handler);
    }
}